import { useAuthStore } from '@/stores/modules/auth'
import { ElMessage } from 'element-plus'
// 路由守卫
//代码的详细意思是：如果当前页面需要登录，并且用户没有登录，则跳转到登录页面，否则跳转到当前页面。

export const setupRouterGuards = (router) => {
  router.beforeEach(async (to, from, next) => {
    const authStore = useAuthStore()
    // 需要登录的页面
    const requireAuth = to.matched.some(record => record.meta.requireAuth)
    const requireAdmin = to.matched.some(record => record.meta.requireAdmin)

    // 管理员路由验证
    if (requireAdmin) {
      const adminToken = localStorage.getItem('adminToken')
      if (!adminToken) {
        ElMessage.error('请先管理员登录')
        next('/admin/login')
      } else {
        next() // 管理员已登录
      }
    } 
    // 普通用户路由验证
    else if (requireAuth) {
      if (!authStore.isAuthenticated) {
        ElMessage.error('请先登录')
        next('/login')
      } else {
        next() // 普通用户已登录
      }
    }
    // 登录页面重定向
    else if (to.path === '/login' && authStore.isAuthenticated) {
      next('/')
    }
    else if (to.path === '/admin/login' && localStorage.getItem('adminToken')) {
      next('/admin') // 管理员已登录，直接跳转到后台
    }
    else {
      next()
    }
  })
}
